package com.dotflat.xj.service;


import com.dotflat.rest.service.AreableObjectBaseService;
import com.dotflat.xj.domain.TargetRecord;
import com.dotflat.xj.po.TargetRecordPO;
import com.dotflat.xj.po.TargetTypeNamePO;
import com.dotflat.xj.po.TargetTypeRecordPO;
import com.dotflat.xj.po.TargetValueRecordAreaPO;
import com.matt.commons.page.PagerQuery;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Map;


public interface TargetRecordService extends AreableObjectBaseService<TargetRecord> {

    Map details(String ticket, String targetRecordId);

    void  add(String ticket, TargetRecordPO targetRecord);

    List<Map> census(String ticket, String targetId, String time);

    List<Map> groupCount( String ticket,int type,Boolean week, String time,String sort);

    List<Map>  totalCount(String ticket,String startTime,String endTime,String sort,String areaId);

    List<Map>  groupTotalCount(String ticket,String startTime,String endTime);

    List<Map>  countResult(String ticket,String startTime,String endTime,String type,String areaId) throws Exception;

    List<Map>  countResultDetails(String ticket,String recordId);

    List<TargetTypeRecordPO> areaTypeCount(String ticket, String areaId, String startTime, String endTime);

    List<TargetTypeRecordPO> typeNameCount(String ticket, String areaId, String startTime, String endTime);

    Page<TargetValueRecordAreaPO> getAreaCountResult(String areaId, String startTime, String endTime, String type, PagerQuery pagerQuery);

    TargetTypeNamePO targetStatus(String areaId, String targetId, String targetClassId);
}
